package com.fz.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by webrx on 2017-09-06.
 */
@Controller
public class Upload {
/*@RequestMapping("/upld") @ResponseBody
//@RequestParam("ff")类似于做web项目表单提交接收值时的req.getParameter("ff")
    public void upfile(@RequestParam("ff") CommonsMultipartFile cmf, String name, PrintWriter out) throws IOException {
    System.out.println(name);
    //取得的上传的文件名
    String filename=cmf.getOriginalFilename();
    //上传时的文件名
    cmf.transferTo(new File("c:/",filename));
    out.print(String.format("文件名%s字节",filename));
    out.print(String.format("表单名%s字节",cmf.getName()));
    out.print(String.format("文件名大小写%d字节",cmf.getSize()));
    out.print(cmf.getContentType());*/

//单文件上传
    @RequestMapping(value = "/upld")
//@RequestParam("ff")类似于做web项目表单提交接收值时的req.getParameter("ff")
    public ModelAndView upfile(@RequestParam("ff") CommonsMultipartFile cmf, String name,HttpServletRequest req) throws IOException {
        ModelAndView mv = new ModelAndView("/user/upf");
        //判断是否选择文件
        //当那边提交的时候没有选中图片cmf.isEmpty(),这里为true，然后在视图层做出处理;
        if (cmf.isEmpty()) {
            mv.addObject("shibai","文件上传失败,未选择文件");
            //视图层可以在这里更改    upf-error.jsp.jsp
            //mv.setViewName("upf-error.jsp");
        } else {
        //建立目录
            String s=new SimpleDateFormat("yyMMdd").format(new Date());
            //自己设置路径，一天为一个新的文件夹
            String path="/upload/"+s;
            //文件存的路径
            String p=req.getServletContext().getRealPath(path);
            File ff=new File(p);
            //判断这个路径是否存在，不存在的话建立
            if(!ff.exists()){
                ff.mkdirs();
            }
            //取得的上传的文件名
            String nn=cmf.getOriginalFilename();
            //上传的路径  cmf.transferTo(new File("c:/",filename));
            cmf.transferTo(new File(ff,nn));
            mv.addObject("wenjianname", cmf.getOriginalFilename());//上传文件名
            mv.addObject("size", cmf.getSize());//文件大小
            mv.addObject("contenttype", cmf.getContentType());  //获取文件类型
            mv.addObject("formname", cmf.getName());//表单名
            //视图层可以在这里更改    upf-success.jsp
            //mv.setViewName("upf-success.jsp");
      }
        return mv;
    }

    //多文件上传

    @RequestMapping("/ups")    @ResponseBody
    public void ups(@RequestParam("fs") CommonsMultipartFile[] fs) throws IOException {
        File ff=new File("d:/atu/");
        //判断是否有这个路径存在，没有就建个目录
        if(!ff.exists()){
            ff.mkdirs();
        }
        //打出上传文件的数量
        System.out.println(fs.length);
        for (CommonsMultipartFile f:fs){
            //判断是否选中文件
            if(f.isEmpty()) continue;
            f.transferTo(new File(ff,f.getOriginalFilename()));
        }
    }



}
